// src/api/index.js
import axiosInstance from '@/request/index.js';

/* 全局配置 */
// 首屏广告
export const getAd = () => axiosInstance.get('/madr.json');

// 新手福利
export const getNovice = () => axiosInstance.get('/novice.json')

// 分享模板
export const getShareTemplate = () => axiosInstance.get('/sharedoctemplate.json')

/* 首页书城 */
// 书城导航
// @params {number} [gender=1] 性别 1：男 2：女
export const getStoreNav = (gender = 1) => axiosInstance.get('/store/navi.json', { params: { gender } })

// 书城展示模块
// @params {string} type 频道类型
// @params {string} uuid 模块id
export const getStoreShow = (type, uuid) => axiosInstance.get('/store/show.json', { type, uuid })

// 书单列表
// @params {string} uuid 书单id
export const getBookList = (uuid) => axiosInstance.get('/store/bookList.json', { params: { uuid } })

/* 频道分类 */
// 所有频道
// @params {string} [gender=1] 性别 1：男 2：女
// @params {number}  [categoryOnly =1]只获取频道 1: 只获取频道 0: 全部
export const getAllChannels = (gender, categoryOnly) => axiosInstance.get('/store/node.json', { params: { gender, categoryOnly } })

// 频道分类
// @params {string} type 频道
// @params          [bar=cat]
// @params {string} uuid 频道id
// @params {number} [gender=1] 性别 1：男 2：女
// @params {number} [categoryOnly =1]只获取频道 1: 只获取频道 0: 全部
export const getChannelInfo = (type, bar, uuid, gender, categoryOnly) => axiosInstance.get('/store/info.json', { type, bar, uuid, gender, categoryOnly })

//合并频道与分类
// 此接口是 所有频道 与 频道下所有分类 两个接口的合并，觉得先获取频道再获取分类麻烦的可以使用这个接口。
export const getChannelAndCategory = () => axiosInstance.get('/mergedCategroy.json',)

// 分类筛选条件
// @params {string} catId 分类id
export const getFilterConditions = (catId) => axiosInstance.get('/source/v2/cat.json', { params: { catId } })

// 分类筛选结果
// @params {string} catId 分类id
// @params {number} [pay = 0] 是否付费 0: 全部 1: 付费 2: 免费 3: 包月
// @params {number} bookStatus 是否完结 0: 全部 1: 连载 2: 完本
// @params {number} sort 排序 1畅销 3最新
// @params {number} wordCount 字数 0：全部 1：30万字以下 2：30-50万字 3：50-100万字 4:100万字以上
// @params {string} subCat 子分类id
// @params {number} page 分页
export const searchBooksByCategory = (catId, pay, bookStatus, sort, wordCount, subCat, page) => axiosInstance.get('/source/v2/searchBook.json', { catId, pay, bookStatus, sort, wordCount, subCat, page })
/*  简单分类 M  */
// 简单分类 M
export const getSimpleCategory = () => axiosInstance.get('/simpleCategroy.json')


// 原创小说分类列表-M
// @params {string} id 分类id
// @params {string} [gender=male] 性别  male：男 female：女
// @params {number} [sort =2] 排序 1: 最新 2: 最热
// @params {number} [pay =0] 是否付费  0: 全部 1: 付费 2: 免费 3: 包月
// @params {number} [status =0] 是否完结  0: 全部 1: 连载 2: 完本
// @params {number} [page =1] 分页
export const getOriginalNovelCategory = (id, gender, sort, pay, status, page) => axiosInstance.get('/category/original/data.json', { id, gender, sort, pay, status, page })

//图书出版分类列表-M
// @params {string} id 分类id
// @params {number} [sort =2] 排序 1: 最新 2: 最热
// @params {number} [pay =0] 是否付费  0: 全部 1: 付费 2: 免费 3: 包月
// @params {number} [page =1] 分页
export const getPublishCategory = (id, sort, pay, page) => axiosInstance.get('/category/publish/data.json', { id, sort, pay, page })


/* 书架 */
// 书架Banner

export const getShelfBanner = () => axiosInstance.get('/shelf/banner.json')

// 书架书籍推荐
export const getShelfRecommend = () => axiosInstance.get('/shelf/info.json')

// 书架书籍详情
// 此接口可根据书籍id获取书籍简略信息，可在 书架或者阅读历史记录 只保存书籍id的情况下，根据书籍id获取书籍缩略图等信息。
// @params {string} ids 需要获取详细信息的书籍id等 [{"id":"ts_f9b5e574c8684ea3a28a72376c2f8570_4","type":"book"},{"id":"b32f161171944d27936796aba5c53770_4","type":"book"}]
export const getShelfBookDetail = (ids) => axiosInstance.get('/shelf/detail.json', { params: { ids } })

/* 搜索相关 */
// 热门搜索
export const getHotKeywords = () => axiosInstance.get('/search/getHotWords')

// 搜索建议
// @params {string} search 关键词
export const getSearchSuggest = (search) => axiosInstance.get('/search/searchHint', { params: { key: search } })


// 搜索结果列表
// @params {string} keyword 关键词
// @params {number} [page =1] 分页
// @params {number} [sort =0] 排序 0: 综合排序 1: 销量最高 2: 人气最旺 3: 新书上架 4: 最近更新
// @params {number} [channel =0] 频道 0: 全部 1: 男生 2: 女生 3: 出版
// @params {number} [bookStatus =0] 完结状态 0: 全部 1: 完结 2: 连载
// @params {number} [pay =0] 付费情况 0: 全部 1: 免费 2: 包月 3: 付费
// @params {number} wordCount 字数 0：全部 1：30万字以下 2：30-50万字 3：50-100万字 4:100万字以上
export const getSearchList = (keyword, page, sort, channel, bookStatus, pay, wordCount) => axiosInstance.get('/search/book.json', { keyword, page, sort, channel, bookStatus, pay, wordCount })



// 【无效接口】 搜索结果列表 M
// @params {string} keyword 关键词
// @params {number} [page =1] 分页
export const searchBooks = (keyword, page) => axiosInstance.get('/search/book/data.json', { keyword, page })



/* 排行榜 */
// 排行榜分类
// @params {string} uuid 排行榜id
// @params {number} rankType 排行榜类型
export const getRankCategories = (uuid, rankType) => axiosInstance.get('/store/merged/rankNavi.json', { params: { uuid, rankType } })

// 排行榜列表
// @params {number} rankType 排行榜类型
// @params {string} uuid 排行榜id
// @params {number} [all =0] 分页偏移 20的倍数
export const getRankList = (rankType, uuid, all) => axiosInstance.get('/store/rankList.json', { params: { rankType, uuid, all } })



// 原创小说排行榜-M
// @params {string} gender 排行榜id
// @params {string} [sortType = day] 排行榜周期 day week month
// @params {string} [type = sell] 排行榜类型
// @params {number} page 分页
export const getOriginalNovelRank = (gender, sortType, type, page) => axiosInstance.get('/rank/original/list/data.json', { params: { gender, sortType, type, page } })

// 出版图书排行榜-M
// @params {string} [sortType = day] 排行榜周期 day week month
// @params {string} [type = sell] 排行榜类型
// @params {number} page 分页
export const getPublishRank = (sortType, type, page) => axiosInstance.get('/rank/publish/list/data.json', { params: { sortType, type, page } })


/* 评论相关*/
// 书籍评论列表
// @params {string} bookId 书籍id
export const getBookComments = (bookId) => axiosInstance.get('/comment/getComments.json', { params: { bookId } })


// 书籍评论回复列表
// @params {string} bookId 书籍id
// @params {string} cid 评论id
export const getCommentReplys = (bookId, cid) => axiosInstance.get('/comment/getReplys.json', { params: { bookId, cid } })


//主题评论&书籍评论-M
// @params {string} [type = 3] 书籍或主题
// @params {string} bookId 书籍id
// @params {number} page 分页
export const getThemeAndBookComments = (type, bookId, page) => axiosInstance.get('/sns/comment/get.json', { params: { type, bookId, page } })


// 用户信息
// @params {number} userId 用户id
export const getUserInfo = (userId) => axiosInstance.get('/sns/user/getUserInfo.json', { params: { userId } })


/* 书籍详情 */
// 书籍基本信息
// @params {number} sourceUuid 书籍id
export const getBookInfo = (sourceUuid) => axiosInstance.get('/book/info.json', { params: { sourceUuid } })


//最新章节
// @params {number} id 书籍id
export const getNewChapter = (id) => axiosInstance.get('/book/simpleInfo.json', { params: { id } })




// 书籍详情
// @params {number} id 书籍id
// @params {string} title 书籍标题
export const getBookDetail = (id, title) => axiosInstance.get('/book/getsub.json', { id, title })

// 章节列表
// @params {number} tocId 书籍id
export const getChapters = (tocId) => axiosInstance.get('/book/catalog.json', { params: { tocId } })

// 打赏列表
// @params {number} id 书籍id
export const getRewardList = (id) => axiosInstance.get('/book/present/simple.json', { params: { id } })

// 粉丝榜
// @params {number} id 书籍id
// @params {number} rankType 榜单类型 0: 最多 1: 最新
// @params {number} [offset = 0] 分页偏移 20的倍数
export const getFansRank = (id, rankType, offset) => axiosInstance.get('/book/present/fans.json', { params: { id, rankType, offset } })




/* 听书相关 */
// 听书详情
// @params {number} sourceUuid 听书id
export const getAudioBook = (sourceUuid) => axiosInstance.get('/ting/source.json', { params: { sourceUuid } })

// 听书章节
// @params {number} sourceUuid 听书id
export const getAudioChapters = (sourceUuid) => axiosInstance.get('/ting/catalog.json', { params: { sourceUuid } })

/* 其他接口 */
// 主题详情
// @params {number} id  主题id
export const getThemeDetail = (id) => axiosInstance.get('/newsubject/data.json', { params: { id } })


// 专题列表（column）-M
// @params {number} id  专题id
export const getColumnList = (id) => axiosInstance.get('/column/data.json', { id })




// 限时免费
// @params {string} type  频道 male female
// @params {number} page  分页
export const getFreeBooks = (type, page) => axiosInstance.get('/limitread/data.json', { params: { type, page } })

// 最近阅读推荐
// @params {string} ids  书籍id  [1,2,3]
export const getRecentRecommend = (ids) => axiosInstance.get('/recentread/data.json', { ids })
